cURL
curl --request PATCH \
--url https://app.masivo.ai/api/storefront/v1/tickets/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-account-id: <x-account-id>' \
--data '
{
"to_pipeline_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"to_stage_code": "<string>",
"add_assignee_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"remove_assignee_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignee_user_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"title": "<string>",
"description": "<string>",
"required_fields": {
"resolution_summary": "Refund issued and customer notified."
}
}
'import requests
url = "https://app.masivo.ai/api/storefront/v1/tickets/{id}"
payload = {
"to_pipeline_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"to_stage_code": "<string>",
"add_assignee_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"remove_assignee_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignee_user_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"title": "<string>",
"description": "<string>",
"required_fields": { "resolution_summary": "Refund issued and customer notified." }
}
headers = {
"x-account-id": "<x-account-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-account-id': '<x-account-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
to_pipeline_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
to_stage_code: '<string>',
add_assignee_user_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
remove_assignee_user_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
assignee_user_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
title: '<string>',
description: '<string>',
required_fields: {resolution_summary: 'Refund issued and customer notified.'}
})
};
fetch('https://app.masivo.ai/api/storefront/v1/tickets/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.masivo.ai/api/storefront/v1/tickets/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'to_pipeline_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'to_stage_code' => '<string>',
'add_assignee_user_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'remove_assignee_user_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'assignee_user_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'title' => '<string>',
'description' => '<string>',
'required_fields' => [
'resolution_summary' => 'Refund issued and customer notified.'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-account-id: <x-account-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.masivo.ai/api/storefront/v1/tickets/{id}"
payload := strings.NewReader("{\n \"to_pipeline_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"to_stage_code\": \"<string>\",\n \"add_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"remove_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"assignee_user_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"required_fields\": {\n \"resolution_summary\": \"Refund issued and customer notified.\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-account-id", "<x-account-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://app.masivo.ai/api/storefront/v1/tickets/{id}")
.header("x-account-id", "<x-account-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"to_pipeline_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"to_stage_code\": \"<string>\",\n \"add_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"remove_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"assignee_user_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"required_fields\": {\n \"resolution_summary\": \"Refund issued and customer notified.\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.masivo.ai/api/storefront/v1/tickets/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-account-id"] = '<x-account-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"to_pipeline_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"to_stage_code\": \"<string>\",\n \"add_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"remove_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"assignee_user_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"required_fields\": {\n \"resolution_summary\": \"Refund issued and customer notified.\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"pipeline_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stage_code": "new",
"title": "<string>",
"description": "<string>",
"created_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignees": [
{
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assigned_at": "2023-11-07T05:31:56Z",
"assigned_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"communication_summary": {
"thread_count": 123,
"latest_thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"latest_message_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"latest_message_at": "2023-11-07T05:31:56Z",
"latest_message_preview": "<string>",
"channel_account_id": "<string>",
"external_thread_id": "<string>",
"unread_count": 123
},
"review_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"brand_id": "<string>",
"channel_id": "<string>",
"store_id": "<string>",
"resolved_at": "2023-11-07T05:31:56Z",
"closed_at": "2023-11-07T05:31:56Z",
"reopened_at": "2023-11-07T05:31:56Z",
"first_resolved_at": "2023-11-07T05:31:56Z",
"resolution_count": 123,
"resolution_summary": "<string>",
"closure_reason": "<string>",
"associations": [
{
"associated_id": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"comments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"author_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"body": "<string>",
"is_internal": true,
"created_at": "2023-11-07T05:31:56Z"
}
],
"stage_history": [
{
"from_pipeline_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"to_pipeline_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"from_stage_code": "<string>",
"to_stage_code": "<string>",
"changed_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"changed_at": "2023-11-07T05:31:56Z",
"duration_seconds": 123
}
],
"dedupe_fingerprint": "<string>",
"idempotency_key": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}Tickets
Update ticket
Update a ticket title, description, priority, assignees, or stage in one request. Use add_assignee_user_id, remove_assignee_user_id, or assignee_user_ids to manage assignees. Stage changes validate required stage fields.
PATCH
/
tickets
/
{id}
cURL
curl --request PATCH \
--url https://app.masivo.ai/api/storefront/v1/tickets/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-account-id: <x-account-id>' \
--data '
{
"to_pipeline_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"to_stage_code": "<string>",
"add_assignee_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"remove_assignee_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignee_user_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"title": "<string>",
"description": "<string>",
"required_fields": {
"resolution_summary": "Refund issued and customer notified."
}
}
'import requests
url = "https://app.masivo.ai/api/storefront/v1/tickets/{id}"
payload = {
"to_pipeline_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"to_stage_code": "<string>",
"add_assignee_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"remove_assignee_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignee_user_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"title": "<string>",
"description": "<string>",
"required_fields": { "resolution_summary": "Refund issued and customer notified." }
}
headers = {
"x-account-id": "<x-account-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-account-id': '<x-account-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
to_pipeline_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
to_stage_code: '<string>',
add_assignee_user_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
remove_assignee_user_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
assignee_user_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
title: '<string>',
description: '<string>',
required_fields: {resolution_summary: 'Refund issued and customer notified.'}
})
};
fetch('https://app.masivo.ai/api/storefront/v1/tickets/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.masivo.ai/api/storefront/v1/tickets/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'to_pipeline_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'to_stage_code' => '<string>',
'add_assignee_user_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'remove_assignee_user_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'assignee_user_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'title' => '<string>',
'description' => '<string>',
'required_fields' => [
'resolution_summary' => 'Refund issued and customer notified.'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-account-id: <x-account-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.masivo.ai/api/storefront/v1/tickets/{id}"
payload := strings.NewReader("{\n \"to_pipeline_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"to_stage_code\": \"<string>\",\n \"add_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"remove_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"assignee_user_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"required_fields\": {\n \"resolution_summary\": \"Refund issued and customer notified.\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-account-id", "<x-account-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://app.masivo.ai/api/storefront/v1/tickets/{id}")
.header("x-account-id", "<x-account-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"to_pipeline_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"to_stage_code\": \"<string>\",\n \"add_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"remove_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"assignee_user_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"required_fields\": {\n \"resolution_summary\": \"Refund issued and customer notified.\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.masivo.ai/api/storefront/v1/tickets/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-account-id"] = '<x-account-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"to_pipeline_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"to_stage_code\": \"<string>\",\n \"add_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"remove_assignee_user_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"assignee_user_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"required_fields\": {\n \"resolution_summary\": \"Refund issued and customer notified.\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"pipeline_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stage_code": "new",
"title": "<string>",
"description": "<string>",
"created_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignees": [
{
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assigned_at": "2023-11-07T05:31:56Z",
"assigned_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"communication_summary": {
"thread_count": 123,
"latest_thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"latest_message_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"latest_message_at": "2023-11-07T05:31:56Z",
"latest_message_preview": "<string>",
"channel_account_id": "<string>",
"external_thread_id": "<string>",
"unread_count": 123
},
"review_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"brand_id": "<string>",
"channel_id": "<string>",
"store_id": "<string>",
"resolved_at": "2023-11-07T05:31:56Z",
"closed_at": "2023-11-07T05:31:56Z",
"reopened_at": "2023-11-07T05:31:56Z",
"first_resolved_at": "2023-11-07T05:31:56Z",
"resolution_count": 123,
"resolution_summary": "<string>",
"closure_reason": "<string>",
"associations": [
{
"associated_id": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"comments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"author_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"body": "<string>",
"is_internal": true,
"created_at": "2023-11-07T05:31:56Z"
}
],
"stage_history": [
{
"from_pipeline_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"to_pipeline_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"from_stage_code": "<string>",
"to_stage_code": "<string>",
"changed_by_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"changed_at": "2023-11-07T05:31:56Z",
"duration_seconds": 123
}
],
"dedupe_fingerprint": "<string>",
"idempotency_key": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The account that owns the ticket
Path Parameters
The ticket unique identifier
Body
application/json
Target ticket pipeline. Include to_stage_code when moving between pipelines.
Target ticket stage code.
Account member id to add as an assignee.
Account member id to remove from the assignees.
Replaces the current assignees with this exact list.
Maximum string length:
200Maximum string length:
5000Available options:
low, medium, high, urgent Values required by the target stage, keyed by field_key.
Show child attributes
Show child attributes
Example:
{
"resolution_summary": "Refund issued and customer notified."
}
Response
Ticket updated
Show child attributes
Show child attributes
⌘I